package com.chianghao.qyt.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chianghao.qyt.entity.SysOperationRole;
import com.chianghao.qyt.entity.SysOperationRoleMenu;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface SysOperationRoleService {
    /**
     * 分页
     * @param pageIndex 当前页面
     * @param pageSize 每页大小
     * @return 分页信息
     */
    IPage<SysOperationRole> page(Integer pageIndex, Integer pageSize);

    /**
     * 添加
     * @param name   角色名称
     * @param remark 备注
     * @param menuIds 授权的菜单
     * @param menuHalfIds 半选授权的菜单
     */
    void add(String name,String remark, Set<String> menuIds,Set<String> menuHalfIds);

    /**
     * 修改角色
     * @param id 角色主键
     * @param name 名称
     * @param remark 备注
     * @param menuIds 授权的菜单
     * @param menuHalfIds 半授权的菜单
     */
    void modify(Long id, String name, String remark, Set<String> menuIds,Set<String> menuHalfIds);

    /**
     * 删除角色
     * @param id 角色ID
     */
    void delete(String id);


    /**
     * 查询角色的菜单
     * @param roleIds 角色ID集合
     * @return   返回觉得授权菜单信息
     */
    Map<Long, Set<SysOperationRoleMenu>> queryRoleToMenuIdsMap(Set<Long> roleIds);

    /**
     * 获取所有的数据
     * @return 返回数据
     */
    List<SysOperationRole> all();
}
